package domain;

	import java.io.IOException;
	import java.util.Iterator;
	import java.util.List;
	import java.util.Vector;

	import exceptions.BierExistiertBereitsException;
	import exceptions.BierNichtGefundenException;
	import persistence.FilepersistenceManager;
	import persistence.PersistenceManager;
	import valueobjects.Artikel;
	import valueobjects.Warenkorb;

		public class WarenkorbVerwaltung {
			
				public Vector<Warenkorb> warenkorb = new Vector<Warenkorb>();
			
				private FilepersistenceManager pm = new FilepersistenceManager();
				
				private Artikel a;
				
				private Warenkorb wk ;
				
				
				int menge = 0;
				float kpreis = 0;
				String kunde;
				String id;
				
				
		public void liesDaten(String datei) throws IOException, BierExistiertBereitsException {
					
					pm.openForReading(datei);

					Warenkorb wkBier;
					do {
						wkBier = pm.ladeWarenkorb();
						if (wkBier != null) {
							inWarenkorb(wk);
						}
					} while (wkBier != null);

					pm.close();
					
				}

				
		public void schreibeDaten(String datei) throws IOException  {

					pm.openForWriting(datei);

					Iterator<Warenkorb> iter = warenkorb.iterator();
					while (iter.hasNext()) {
						Warenkorb wk = iter.next();
						pm.speicherewk(wk);				
					}
					
					pm.close();
					
				}
				
		public Warenkorb suchEinArtikel(String artikelName) throws BierNichtGefundenException {
					
					Iterator<Warenkorb> iter = warenkorb.iterator();
					while (iter.hasNext()) {
						Warenkorb wk = iter.next();
						if ( wk.getartikel().equals(artikelName)) {
							return wk;
						}
					}
					throw new BierNichtGefundenException();
					
				}
		
		public Vector<Warenkorb> sucheArtikelNachName (String artikelName) throws BierNichtGefundenException{
			
					Vector<Warenkorb> ergebnis = new Vector<Warenkorb>();
			
					Iterator<Warenkorb> iter = warenkorb.iterator();
					while (iter.hasNext()){
						Warenkorb wk = iter.next();
						if (wk.getartikel().equals(artikelName)){
							ergebnis.add(wk);
						}
					}
					if(ergebnis.isEmpty()){
						throw new BierNichtGefundenException();
					}

					return ergebnis;
			}
		
		

				
		public void inWarenkorb(Warenkorb wkArtikel){
			
			warenkorb.add(wkArtikel);
			System.out.println(wkArtikel+" ist im warenkorb");
		}
		
		public void auswarenkorb(){
			
		}
		
		public void mengeandern(int i){
			a.setMenge(i);
			
		}
		
		public Vector<Warenkorb> gibwkaus(){
			return warenkorb;
			
		}
		
		public float endpreis(){
			float summe = 0;
			Iterator<Warenkorb> iter = ((List<Warenkorb>) wk).iterator();
			while(iter.hasNext()){
				Warenkorb kArtikel = (Warenkorb)iter.next();
				summe = summe + (a.getPreis()* wk.getMenge());
			}
			return summe;
			
			
		}
		
	}	